package com.hsp.codeblock;

public class CodeBlockDetail01 {
    public static void main(String[] args) {

        //创建对象实例时(new),静态代码块会被执行
        //创建子类对象实例时，对象也会被加载
//        new AA();
//        System.out.println(Cat.n1);
        new DD();
        new DD();
    }
}
class DD{
    //静态代码块，无论类创建几次，只会被加载一次
    static {
        System.out.println("dd静态代码块被执行");
    }
//    普通代码块，创建对象一次，加载一次
    {
        System.out.println("dd普通代码块");
    }
}


class Cat {
    public static int n1=999;
    static {
        System.out.println("Cat 的静态代码1被执行...");
    }
}
class BB{
    static {
        System.out.println("BB的静态代码块1被执行...");
    }
}
class AA extends BB{

    //静态代码块
    static {
        System.out.println("AA的静态代码块1被执行...");
    }
}